Chrome 138 ベータ版

公開日: 2025 年 5 月 28 日

特に明記しない限り、以下の変更は Android、ChromeOS、Linux、macOS、Windows 向けの最新の Chrome ベータ版チャネル リリースに適用されます。ここに記載されている機能の詳細については、記載されているリンクまたは ChromeStatus.com のリストをご覧ください。Chrome 138 は 2025 年 5 月 28 日時点でベータ版です。最新バージョンは、パソコンの Google.com または Android の Google Play ストアからダウンロードできます。

CSS と UI

今回のリリースでは、CSS と UI に 6 つの新機能を追加しました。

CSS stretch サイズ設定キーワード

CSS サイズ設定プロパティのキーワード(widthheight など)。要素が、その親ブロックの使用可能なスペースを完全に埋めるまで拡大できるようにします。100% と似ていますが、結果のサイズが box-sizing で指定されたボックスではなく、要素のマージン ボックスに適用される点が異なります。このキーワードを使用すると、要素の余白を維持しながら、可能な限り大きくすることができます。

符号関連の関数 abs()sign() は、引数の符号に関連するさまざまな関数を計算します。

OS レベルのフォント スケールの CSS 環境変数

ユーザーが希望するフォントスケールを CSS に公開します。現時点では、ユーザーがオペレーティング システムの設定で好みのフォントサイズを変更したかどうかをページで検出することは実用的ではありません。この CSS 環境変数には、ユーザーが選択したスケールが反映されます。

CSS sibling-index()sibling-count()

sibling-index() 関数と sibling-count() 関数は、CSS プロパティ値で整数として使用し、兄弟要素の位置または兄弟要素の合計数に基づいて要素のスタイルを設定できます。これらの関数は整数値として直接使用できますが、calc() 式内で使用するとさらに便利です。

li {
  animation-delay: calc(0.1s * sibling-index());
}

補間進行状況の関数表記: CSS progress() 関数

progress() 関数表記は、2 つの計算(進行状況の開始値と進行状況の終了値)間の 1 つの計算の位置(進行状況の値)を表す <number> 値を返す数学関数です。

Viewport Segments Enumeration API

Viewport Segments API を使用すると、デベロッパーは折りたたみ式デバイスをターゲットにウェブ レイアウトを適応させることができます。ビューポート セグメントは、ビューポートの論理的に分離された領域の位置とサイズを定義します。ビューポート セグメントは、ビューポートが分割として機能する 1 つ以上のハードウェア機能(別々のディスプレイ間の折り目やヒンジなど)によって分割されたときに作成されます。セグメントは、デベロッパーが論理的に区別できるビューポートの領域です。

ウェブ API

WebCodecs に動画フレームの向きメタデータのサポートを追加

WebCodecs のさまざまな動画関連インターフェースに rotation: int 値と flip: bool 値を導入し、デベロッパーが向きのあるフレームソース(Android カメラや特定のメディアなど)を扱えるようにしました。VideoFrame インターフェースでは、任意の回転と反転で VideoFrame を作成する機能と、VideoFrame オブジェクトのこの情報のアクセサラが追加されました。VideoDecoderConfig オブジェクトは、デコードされた VideoFrame オブジェクトで自動的に出力される rotation フィールドと flip フィールドを取得します。VideoEncoder クラスは、EncodedVideoChunkMetadata の一部として出力される VideoDecoderConfig に、encode() から回転と反転の情報を渡すメカニズムを獲得しました。向きの異なるフレームで encode() が呼び出されると、致命的でない例外がスローされます。configure() メソッドを使用して、許可される画面の向きをリセットできます。

Crash Reporting API: is_top_levelvisibility_state

この機能により、クラッシュ レポートの API 本文に is_top_levelvisibility_state の文字列フィールドが追加され、クラッシュ レポートのデフォルトのレポート エンドポイントに送信されます。

シリアル化時に属性の <> をエスケープ

シリアル化時に属性の値で <> をエスケープ。これにより、属性の値がシリアル化されて再解析された後に開始タグトークンとして解釈されるミューテーション XSS 攻撃のリスクを軽減できます。

スクリプトの完全性に関するポリシー

Subresource-Integrity(SRI)を使用すると、デベロッパーは読み込むアセットが実際に読み込まれるアセットであることを確認できます。ただし、現在のところ、デベロッパーがすべてのスクリプトが SRI を使用して検証されていることを確認する方法はありません。Integrity-Policy ヘッダーを使用すると、デベロッパーは特定のタイプのすべてのリソースの完全性チェックが必要であることをアサートできます。完全性メタデータなしでそのタイプのリソースを読み込もうとすると、読み込みは失敗し、違反レポートがトリガーされます。

予測可能な報告された保存容量の割り当て

ストレージの無制限の権限がないサイトに対して、StorageManager の Estimate API から予測可能なストレージ割り当てを報告します。シークレット モードでは利用可能なストレージ容量が通常モードよりも大幅に小さいため、報告された保存容量を使用してユーザーのブラウジング モードを検出できます。

これは、ストレージ API を使用してユーザーのブラウジング モードを検出できないようにする緩和策です。ストレージ権限が制限されているサイトのすべてのブラウジング モードで、使用量 + 最小値(10 GiB、ディスクを 1 GiB 単位で切り上げ)に相当する人工的な割り当てを報告します。ストレージの無制限の権限を持つサイトには影響しません。適用された割り当ても影響を受けません。

再定期購入時の pushsubscriptionchange イベント

プッシュ サブスクリプションが過去に存在していたが、権限の変更(許可から拒否/デフォルト)により取り消されたオリジンに通知権限が再び付与されたときに、サービス ワーカーで pushsubscriptionchange イベントを発生させます。イベントは、空の oldSubscriptionnewSubscription で発生します。

推測ルール: Clear-Site-Data ヘッダーに prefetchCacheprerenderCache を追加

Clear-Site-Data ヘッダーの 2 つの新しい値(prefetchCacheprerenderCache): デベロッパーがプリレンダリング キャッシュとプリフェッチ キャッシュの消去をターゲットにするのに役立ちます。これらは任意のリクエストで送信でき、ドキュメント リクエストで行う必要はありません(たとえば、カートへの追加、ログイン、ログアウトの API 呼び出しレスポンスで返され、状態変化の推測を消去できます)。

推測ルール: target_hint フィールド

これにより、デベロッパーが target_hint フィールドを指定できるように、推測ルールの構文が拡張されます。このフィールドは、事前レンダリングされたページが最終的に有効になる、移動可能なターゲットを示すヒントを提供します。_blank がヒントとして指定されている場合、window.open() によって開かれたナビゲート可能なページで事前レンダリングされたページを有効にできます。このフィールドはプリフェッチではサポートされていません。

Storage Access API の厳格な同一オリジン ポリシー

セキュリティに関して、Storage Access API のセマンティクスを調整し、同一オリジン ポリシーに厳密に準拠させます。つまり、フレームで document.requestStorageAccess() を使用すると、デフォルトでは iframe のオリジン(サイトではない)へのリクエストにのみ Cookie が付加されます。

Summarizer API

AI 言語モデルを基盤とする入力テキストの要約を作成する JavaScript API。ブラウザとオペレーティング システムが言語モデルにアクセスすることがますます求められています。この組み込みモデルを公開することで、すべてのウェブサイトが独自のマルチギガバイト言語モデルをダウンロードしたり、入力テキストをサードパーティ API に送信したりする必要がなくなります。特に、summarizer API は、言語モデルとインターフェースを形成するための高レベルの API を公開し、特定の言語モデルに依存しない方法でさまざまなユースケースの入力を要約します。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、この API を使用できなくなる基盤となるモデルのダウンロードを無効にできます。

詳しくは、組み込み AI を使用して簡潔な要約を生成するをご覧ください。

Language Detector API

特定のテキストで使用されている言語を信頼度とともに検出する JavaScript API。これは翻訳の言語検出に重要な補足機能であり、Translator API と組み合わせて使用できます。たとえば、不明な言語でユーザー入力を受け取り、その言語を特定してから、特定のターゲット言語に翻訳します。多くのブラウザには言語検出機能がすでにありますが、この機能は JavaScript API でウェブ デベロッパーに同じ機能を提供します。これにより、翻訳 API を補完できます。

エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、基盤となるモデルのダウンロードを無効にすると、この API は使用できなくなります。

詳しくは、組み込み AI で使用されている言語を検出するをご覧ください。

Translator API

ウェブページに言語翻訳機能を提供する JavaScript API。ブラウザで言語翻訳がユーザーに提供される機会が増えていますが、このような翻訳機能はウェブ デベロッパーにとっても有用です。これは、ライブ サービスやインタラクティブ サービスなど、ブラウザの組み込み翻訳機能が役に立たない場合に特に当てはまります。エンタープライズ ポリシー(GenAILocalFoundationalModelSettings)を使用して、この API を使用できなくする基盤となるモデルのダウンロードを無効にできます。

詳しくは、組み込み AI による翻訳をご覧ください。

ウェブアプリ スコープ拡張機能

ウェブアプリが他のオリジンにスコープを拡張できるようにする "scope_extensions" ウェブアプリ マニフェスト フィールドを追加します。これにより、複数のサブドメインとトップレベル ドメインを制御するサイトを 1 つのウェブアプリとして表示できます。リストに登録されたオリジンは、.well-known/web-app-origin-association 構成ファイルを使用してウェブアプリとの関連付けを確認する必要があります。

Android の Bluetooth 経由の Web Serial

この機能を使用すると、ウェブページとウェブアプリは Android デバイスで Bluetooth 経由でシリアルポートに接続できます。Android 版 Chrome で Bluetooth RFCOMM を介した Web Serial API がサポートされるようになりました。他のプラットフォームの既存の企業ポリシー(DefaultSerialGuardSettingSerialAllowAllPortsForUrlsSerialAllowUsbDevicesForUrlsSerialAskForUrlsSerialBlockedForUrls)は、Android の future_on 状態で有効になります。SerialAllowUsbDevicesForUrls を除くすべてのポリシーは、この機能が有効になると有効になります。SerialAllowUsbDevicesForUrls は、Android が有線シリアルポートのシステムレベルのサポートを提供する今後のリリースで有効になります。

非推奨と削除

このバージョンの Chrome では、次の非推奨と削除が行われます。予定されている非推奨化、現在の非推奨化、過去の削除の一覧については、ChromeStatus.com をご覧ください。

このリリースの Chrome では、2 つの機能のサポートが終了します。

Media Source Extensions の非同期範囲削除を非推奨にする

メディアソース スタンダードは、非同期範囲削除に関連するあいまいな定義の動作を禁止するように、かなり前に変更されています。

  • SourceBuffer.abort()SourceBuffer.remove() オペレーションを中止しなくなりました。
  • MediaSource.duration の設定で、現在バッファリングされているメディアを切り捨てることができなくなりました。

どちらの場合も例外がスローされるようになりました。

SwiftShader フォールバックを削除

ソフトウェア レンダラ SwiftShader をベースとする WebGL への自動フォールバックは非推奨となり、SwiftShader にフォールバックせずに WebGL コンテキストの作成が失敗するようになります。この変更には主に 2 つの理由があります。

  1. Chromium の GPU プロセスで JIT コードが実行されるため、SwiftShader はセキュリティ リスクが高い。
  2. 高パフォーマンスの GPU ベースの WebGL から CPU ベースの実装にフォールバックすると、ユーザー エクスペリエンスが低下する。ユーザーはこの動作を制御できず、バグレポートで説明するのが困難。

サポート終了までの間、SwiftShader をベースとして WebGL コンテキストを作成すると、Chrome DevTools コンソールに警告が表示されます。--enable-unsafe-swiftshader を渡すと、この警告メッセージは表示されなくなります。